Anti-shake method of robot and robot thereof

ABSTRACT

The present disclosure relates to an anti-shake method of robot and a robot thereof. The method includes: receiving at least one motion-controlling instruction from a main control unit, determining whether a servo performs the motion-controlling instruction, obtaining a target angle and a current angle of the servo upon determining the servo is not under a control of a main control unit, determining whether the target angle and the current angle is within a fault tolerance range, terminating the servo upon determining the target angle and the current angle is within the fault tolerance range. As such, the shaking of the robot may be avoided when the robot performs actions, so as to reduce power consuming and to extend stand-by time.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority to Chinese Patent Application No. 201710464448.2, filed Jun. 19, 2017, which is hereby incorporated by reference herein in its entirety.

BACKGROUND 1. Technical Field

The present disclosure relates to a motion-controlled field, and more particularly to an anti-shake method of robots and a robot thereof.

2. Description of Related Art

Robot is a mechanical product including components, such as limbs, joints, and intelligent control panels. Each of the joints may rotate to different angles according to corresponding instructions for controlling the components. As such, the components, such as, the limbs, the arm, and the leg, may move accordingly.

In one example, when the servo of the limb of the robot moves to a certain position and stays at the certain position, the servo has to provide particular current to maintain the servo of the limb to stay still at the position. If any change exists with respect to the current or the voltage, the servo may continuously adjust the robot, which results in shaking limbs.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart illustrating an anti-shake method of a robot in accordance with one embodiment of the present disclosure.

FIG. 2 is a schematic view of a fault tolerance range in accordance with one embodiment of the present disclosure.

FIG. 3 is a schematic view of the fault tolerance range in accordance with another embodiment of the present disclosure.

FIG. 4 is a schematic view of a robot in accordance with one embodiment of the present disclosure.

DETAILED DESCRIPTION

To clarify the purpose, technical solutions, and the advantages of the disclosure, embodiments of the invention will now be described more fully hereinafter with reference to the accompanying drawings, in which embodiments of the invention are shown. The figure and the embodiment described according to figure are only for illustration, and the present disclosure is not limited to these embodiments. It should be noted that the relational terms herein, such as “first” and “second”, are used only for differentiating one entity or operation, from another entity or operation, which, however do not necessarily require or imply that there should be any real relationship or sequence. Moreover, the terms “comprise”, “include” or any other variations thereof are meant to cover non-exclusive including, so that the process, method, article or device comprising a series of elements do not only comprise those elements, but also comprise other elements that are not explicitly listed or also comprise the inherent elements of the process, method, article or device. In the case that there are no more restrictions, an element qualified by the statement “comprises a . . . ” does not exclude the presence of additional identical elements in the process, method, article or device that comprises the said element.

FIG. 1 is a flowchart illustrating an anti-shake method of a robot in accordance with one embodiment of the present disclosure. The robot is configured with one or more limbs and one or more servos (see FIG. 4) corresponding to respective limbs. The robot may use the anti-shake, method of FIG. 1 to limit undue shaking of the limbs of the robot (“anti-shake robot”). In one example, each of the servos corresponding to each of the limbs is configured with a fault tolerance range regarding angles.

In one example, the robot may have arms, legs, hands, neck, and a head. The arms and legs (“limbs”) may have one or more joints corresponding to hips, shoulders elbows, or knees of a person or an animal, for example. A servo may be positioned on the robot and be electrically connected to one or more corresponding joints, and the servo configured to control the one or more joints to move/rotate the limbs up/down/right/left, for example. The movement may be in two-dimensions (moving in the x-y plane) or three-dimensions (moving in the x-y-z plane). The servos may be positioned on or near the joints, for example.

In step S1: initializing a fault tolerance range.

When a control system is activated, the fault tolerance range of the system is preset as follows. The fault tolerance range may be between a target start angle and a target end angle. The target start angle is a target angle (θ₁) minus a first angle (ϕ₁), and the target end angle is obtained by summing the target angle (θ₁) and a second angle (ϕ₂). The first angle (ϕ₁) may equal to the second angle (ϕ₂), while the first angle (ϕ₁) and the second angle (ϕ₂) may not be zero degrees simultaneously. Specifically, the first angle (ϕ₁) and the second angle (ϕ₂) may be preset and stored in the robot in advance.

In step S2: receiving at least one motion-controlling instruction by the servo of the limb from a main control unit of a robot.

After initializing the fault tolerance range, the servo of the limb may receive and execute the motion-controlling instruction transmitted from the main control unit. Specifically, the motion-controlling instructions may be instructions driving the servo to rotate accordingly, such as to rotate to different target angles with different speeds, or to stop rotating. The limb moves (e.g., rotates) with the rotation of the servo.

In step S3: determining whether the servo of the limb is under motion control of the main control unit. The servo of the limb being under motion control of the main control unit is defined to be, for example, the servo corresponding to the motion-controlling instruction transmitted from the main control unit which represents “rotating from 30 degrees to 60 degrees within 0.5 seconds.”

Specifically, when the servo of the limb is under the control of the main control unit, it is not necessary to perform a fault tolerance range process. For example, if the motion-controlling instruction transmitted from the main control unit is “rotating from 30 degrees to 60 degrees within 0.5 seconds”, the fault tolerance range process may not be performed within during the 0.5 second.

In step S4: obtaining a target angle and a current angle of the servo of a corresponding limb. The current angle is, for example, an angle of the rotation of the servo which has already been performed. The target angle is, for example, an angle of the rotation of the servo which is to be performed.

If the servo is not under the control of the main control unit, the target angle (θ₁) and the current angle (θ₂) driving the servo of the limb may be obtained. If the servo is under the control of the main control unit, the process goes back to step S3 to determine a state of the servo.

In step S5: determining whether the current angle is within the fault tolerance range.

FIG. 2 is a schematic view of the fault tolerance range in accordance with one embodiment of the present disclosure.

Referring to FIG. 2, the system may configure the target angle (θ₁) and obtain the current angle (θ₂). The fault tolerance range is between the target start angle and the target end angle. The target start angle is the target angle (θ₁) minus the first angle (ϕ₁) and the target end angle is obtained by summing the target angle (θ₁) and the second angle (ϕ₂), i.e., [θ₁−ϕ₁, θ₁+ϕ₂]. In one example, the first angle (ϕ₁) may be the second angle (ϕ₂), while the first angle (ϕ₁) and the second angle (ϕ₂) may not be zero degrees simultaneously. In another example, the first angle (ϕ₁) may be greater than or less than the second angle (ϕ₂).

Referring to FIG. 3, in one example, the fault tolerance range may include a third angle (ϕ₃) and a fourth angle (ϕ₄). The third angle (ϕ₃) may be equal to, greater than, or less than the fourth angle (ϕ₄), while the third angle (ϕ₃) and the fourth angle (ϕ₄) may not be zero degrees simultaneously. When the current angle (θ₂) is greater than the target angle (θ₁), it is determined whether a difference between the target angle (θ₁) and the current angle (θ₂) is within the fault tolerance range. The determining process may further include the following steps.

1) When the current angle (θ₂) is greater than the target angle (θ₁).

It is determined whether the difference between the current angle (θ₂) and the target angle (θ₁), i.e., [θ₁−θ₂], is within the fault tolerance range ranging from the third angle (ϕ₃) to zero degrees, [−ϕ₃, 0].

2) When the current angle (θ₂) is less than the target angle (θ₁).

It is determined whether the difference between the current angle (θ₂) and the target angle (θ₁), i.e., [θ₁−θ₂], is within the fault tolerance range ranging from zero degrees to the fourth angle (ϕ₄), i.e., [0, ϕ₄].

In step S6: rotating the limb using the servo upon determining the current angle is not within the fault tolerance range.

If the current angle is within the fault tolerance range [θ₁−ϕ₁, θ₁+ϕ₂], or the difference between the target angle (θ₁) and the current angle (θ₂), i.e., [θ₁−θ₂], is within the fault tolerance range ranging from the third angle (ϕ₃) to zero degrees, i.e., [−ϕ₃, 0] when the current angle (θ₂) is greater than the target angle (θ₁), or the difference between the target angle (θ₁) and the current angle (θ₂), i.e., [θ₁−θ₂], is within the fault tolerance range ranging from zero degrees to the fourth angle (ϕ₄) i.e., [0, ϕ₄], the servo has no need to be rotated. As such, the servo of the limb is configured to be under the motion control of the main control unit and without shaking, and the process goes to the step S3 to determine the state of the servo.

If the current angle is not in the fault tolerance range [θ₁−ϕ₁, θ₁+ϕ₂], or the difference between the target angle (θ₁) and the current angle (θ₂), [θ₁−θ₂], is not in the fault tolerance range ranging from the third angle (ϕ₃) to zero degrees, i.e., [−ϕ₃,0] when the current angle (θ₂) is greater than the target angle (θ₁), or the difference between the target angle (θ₁) and the current angle (θ₂), i.e., [θ₁−θ₂], is not the fault tolerance range ranging from zero degrees to the fourth angle (ϕ₄), i.e., [0, ϕ₄], the servo may be driven to rotate to the target angle (θ₁). Or the servo may rotate the current angle to the fault tolerance range [θ₁−ϕ₁, θ₁+ϕ₂], or to satisfy the difference between the target angle (θ₁) and the current angle (θ₂) being within the range [−ϕ₃, 0] or [0, ϕ₄].

Wherein the step S1 and the step S2 may be omitted in the present disclosure.

In view of the above, the fault tolerance range is set in each of the servos corresponding to the limbs. It is determined whether the angle of servo is within the fault tolerance range when the servo of the limb is not under the control of the main control unit. Such that the shaking of the robot may be avoided when the robot performs actions, so as to reduce power consuming and to extend stand-by time.

Referring to FIG. 4, the present disclosure further relates to the robot, including: one or more processors, a memory, and one or more programs including a computing control module 10, a servo angle detection module 11, a motor driving module 12, and a storage module 13. The one or more programs are stored in the memory and configured to be executed by the one or more processors.

The computing control module 10 is configured to determine whether the servo of the limb is under the control of the main control unit. If the servo of the limb is not under the control of the main control unit, the target angle of the servo may be obtained, and the current angle of the servo may be obtained by the servo angle detection module 11. The computing control module 10 is further configured to determine whether the difference of the current angle and the target angle is within the fault tolerance range. If the difference of the current angle and the target angle is within the fault tolerance range, the computing control module 10 continues to determine whether the servo of the limb is under the control the main control unit.

If the computing control module 10 determines the difference of the current angle and the target angle is not in the fault tolerance range, the motor driving module 12 may control the servo to rotate the current angle to the fault tolerance range.

The computing control module 10 is configured to control the servo to rotate to the target angle via the motor driving module 12.

The computing control module 10 is further configured to initialize the fault tolerance range of the system. The servo is configured to receive the motion-controlling instruction from the computing control module 10 and to perform the motion-controlling instruction via the motor driving module 12.

The fault tolerance range is between the target start angle and the target end angle. The target start angle is the target angle minus the first angle, and the target end angle is obtained by summing the target angle and the second angle. Wherein the first angle and the second angle may be configured and stored in the storage module 13 in advance. In one example, the first angle may be the second angle, while the first angle and the second angle may not be zero degrees simultaneously. In another example, the first angle may be greater than or less than the second angle. Terminating the servo means to stop rotating the servo.

Each of the modules is configured to conduct each of the steps of the anti-shake method described above.

In view of the above, the fault tolerance range is set in each of the servos of the limbs. It is determined whether the angle of servo is within the fault tolerance range when the servo of the limb is not under the control of the main control unit. Such that the shaking of the robot may be avoided when the robot performs actions, so as to reduce power consuming and to extend stand-by time.

The above description is merely the embodiments in the present disclosure, the claim is not limited to the description thereby. The equivalent structure or changing of the process of the content of the description and the figures, or to implement to other technical field directly or indirectly should be included in the claim. 

What is claimed is:
 1. An anti-shake method of a robot comprising limbs, the limbs electrically connected and corresponding to one or more servos positioned on the robot, comprising: receiving, by a servo corresponding to a limb of the robot, at least one motion-controlling instruction from a main control unit of the robot; determining whether the servo is under motion control of the main control unit; obtaining a target angle and a current angle of the servo of the limb upon determining the servo being not under the motion control of the main control unit; determining whether the current angle is within a fault tolerance range; and terminating the servo upon determining the current angle is within the fault tolerance range.
 2. The anti-shake method according to claim 1, wherein the method further comprises: rotating the limb, using the servo, such that the current angle of the servo is within the fault tolerance range upon determining the current angle is not within the fault tolerance range.
 3. The anti-shake method according to claim 2, wherein the step of rotating the servo such that the current angle is within the fault tolerance range upon determining the current angle is not within the fault tolerance range comprises: rotating the limb, using the servo, to the target angle upon determining the current angle is not within the fault tolerance range.
 4. The anti-shake method according to claim 1, wherein before the step of determining whether the servo is under the control of the main control unit, the anti-shake method further comprises: initializing the fault tolerance range.
 5. The anti-shake method according to claim 1, wherein the fault tolerance range is in a range between a target start angle and a target end angle; the target start angle is the target angle minus a first angle, and the target end angle is obtained by summing the target angle and a second angle.
 6. The anti-shake method according to claim 5, wherein the first angle is equal to the second angle, and the first angle and the second angle are not zero degrees simultaneously.
 7. A robot, comprising: a limb, a servo corresponding to the limb; a processor; a storage; and one or more programs, wherein the one or more programs are stored in the storage and configured to be executed by the processor, the one or more programs executing a method, comprising: determining whether the limb of the robot is under a control of a main control unit; obtaining a target angle and a current angle of a servo of the limb upon determining the servo is not under the control of the main control unit; and rotating the limb, using the servo, upon determining the current angle is not within the fault tolerance range; wherein the method further determines whether the current angle is within a fault tolerance range; and terminates the servo upon determining the current angle is within the fault tolerance range.
 8. The robot according to claim 7, wherein the rotating the limb, using the servo, upon determining the current angle is not within the fault tolerance range comprises rotating the limb using the servo such that the current angle is within the fault tolerance range upon the main control unit determining the current angle is not within the fault tolerance range.
 9. The robot according to claim 8, wherein the rotating the limb, using the servo, upon determining the current angle is not within the fault tolerance range comprises rotating the limb, using the servo, to the target angle upon determining the current angle is not within the fault tolerance range.
 10. The robot according to claim 9, wherein the computing control module is further configured to initialize the fault tolerance range.
 11. The robot according to claim 7, wherein the fault tolerance range is in a range between a target start angle and a target end angle; the target start angle is the target angle minus a first angle, and the target end angle is obtained by summing the target angle and a second angle.
 12. The robot according to claim 11, wherein the first angle is equal to the second angle, and the first angle and the second angle are not zero degrees simultaneously.
 13. The anti-shake method according to claim 1, wherein the step of determining whether the current angle is within the fault tolerance range comprises: determining whether a difference between the target angle and the current angle is within the fault tolerance range.
 14. The anti-shake method according to claim 1, wherein the step of receiving the at least one motion-controlling instruction from the main control unit of the robot comprises: receiving the at least one motion-controlling instruction from the main control unit of the robot and executing the at least one motion-controlling instruction through the servo.
 15. The robot according to claim 7, wherein the step of determining whether the current angle is within the fault tolerance range comprises determining whether a difference between the target angle and the current angle is within the fault tolerance range.
 16. The robot according to claim 7, wherein the method further comprises receiving the at least one motion-controlling instruction from the main control unit of the robot and executing the at least one motion-controlling instruction through the servo. 